#if !defined( UNIQUE_FILE_NAME_WITH_REPLACEMENT_H)
#define  UNIQUE_FILE_NAME_WITH_REPLACEMENT_H
#include <string>
#include <vector>
#include <map>
#include <set>

// Get file name constructed with substitutions

// 		E.g. 
// 			with custom			=  {{"[SPECIES]", "dog"}, {"[NAME]", "john"}}
// 			and  original_path	=	[NAME]/path/[SPECIES].fa
// 				becomes			:	john/path/dog.fa
// 
// 		Checks if this name has been created previously in used_file_names

std::string unique_file_name_with_replacement(	std::string		 				 		   	original_path,
												const std::map<std::string, std::string>&	replacements,
												std::set<std::string>& 						used_file_names, 
												const std::string& 							file_name_description);


#endif	//UNIQUE_FILE_NAME_WITH_REPLACEMENT_H

